<!DOCTYPE html>
<html lang="en">

<head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
</head>

<body>
        <script>
                // *********************************************************************************************************************************************
                // 1.封装一个titleCase(str)函数，实现如下功能：确保字符串的每个单词首字母都大写，其余部分小写。
                // 例如：titleCase("I'm a little tea pot"); //返回结果：I'm A Little Tea Pot

                // function titleCase(str) {
                //     return str.split(" ").map(function (item) {
                //         return item[0].toUpperCase() + item.slice(1)
                //     }).join()
                //     var arr = str.split(" ")
                //     console.log(arr)
                //     var arr1 = arr.map(function (item) {
                //         return item[0].toUpperCase() + item.slice(1)
                //     })
                //     console.log(arr1)
                //     return arr1.join()
                // }
                // console.log(titleCase("I'm a little tea pot"))

                // *********************************************************************************************************************************************

                // 2.封装一个bouncer（arr）的函数, 实现如下功能：删除数组中的所有的假值。
                // 例如：bouncer([7, "ate", "", false, 9]); //返回结果：[7, "ate",9]
                // function bouncer(arr) {
                //     // return [7, "ate",9]
                //     return arr.filter(function (item) {
                //         // console.log(item)
                //         return !!item
                //     })

                // }

                // console.log(bouncer([7, "ate", "", false, 9]))

                // *********************************************************************************************************************************************

                // 3. 封装一个函数unite() ，传入两个或两个以上的数组，返回一个以给定的原数组排序的不包含重复值的新数组     
                // function unite() {
                //     var arr = [];  //要返回的数组


                //     for (var i = 0; i < arguments.length; i++) {     //遍历实参列表  传入的每一位实参都是一个数组
                //         console.log(arguments[i])
                //         for (var j = 0; j < arguments[i].length; j++) {   //遍历每一个实参  
                //             if (arr.indexOf(arguments[i][j]) === -1)   //看一下 arr是否包括存在实参数组的元素  === -1  为true 说明不包括  
                //                 arr.push(arguments[i][j])   //推入
                //         } 
                //     }
                //     console.log(arguments)



                //     Array.prototype.slice.call(arguments).forEach(function (item) {
                //         item.forEach(function (item) {
                //             if (arr.indexOf(item) === -1)
                //                 arr.push(item)
                //         })
                //     })




                //     return arr
                // }
                // console.log(unite([1, 2, 2, 2, 3, 4], [5, 64, 6, 63, 1, 1, 2]))

                // *********************************************************************************************************************************************

                // 4．封装一个findLongestWord(str)函数，str是个英文句子，实现如下功能：找出str句子中最长的单词，并计算它的长度。
                // 例如。"The quick brown fox jumped over the lazy dog." 
                // findLongestWord("The quick brown fox jumped over the lazy dog."); 
                // //6findLongestWord("I believe I can do it.");//7

                // function findLongestWord(str) {
                //     var length = 0
                //     str.split(" ").forEach(function (item) {
                //         if (length < item.length)
                //             length = item.length
                //     })

                //     return length
                // }
                // console.log(findLongestWord("The quick brown fox jumped over the lazy dog."))
                // console.log(findLongestWord("I believe I can do it."))

                // *********************************************************************************************************************************************

                // 5.封装一个chunk(arr,size)的函数，把该数组arr按照指定的size分割成若干个数组块。
                // 例如：chunk([1,2,3,4],2) 返回结果:[[1,2],[3,4]]
                //     chunk([1,2,3,4,5],2) 返回结果:[[1,2],[3,4],[5]]

                // function chunk(arr, size) {
                //     var arr1 = []

                //     for (var i = 0; i < arr.length; i += size) {
                //         arr1.push(arr.slice(i, i + size))
                //     }


                //     return arr1;

                // }
                // console.log(chunk([1, 2, 3, 4, 6], 2))

                // *********************************************************************************************************************************************

                // 6.封装一个函数pair(str)，实现如下功能：
                // Base Pairs是一对AT和CG，为给定的字母匹配正确的碱基。
                // 例：pair("ATCG")  //返回值[["A","T"],["T","A"],["C","G"],["G","C"]]
                // pair("CTCTA") //返回值[["C","G"],["T","A"],["C","G"],["T","A"],["A","T"]]


                // function pair(str) {
                //     var arr = [];

                //     for (var i = 0; i < str.length; i++) {
                //         switch (str[i]) {
                //             case "C":
                //                 arr.push(["C", "G"])
                //                 break;
                //             case "G":
                //                 arr.push(["G", "C"])
                //                 break;

                //             case "A":
                //                 arr.push(["A", "T"])
                //                 break;

                //             case "T":
                //                 arr.push(["T", "A"])
                //                 break;

                //         }
                //     }



                //     return arr;
                // }
                // console.log(pair("ATCG"))


                // function fn(str) {
                //     switch (str) {
                //         case "C":
                //             return ["C", "G"]
                //         case "G":
                //             return ["G", "C"]
                //         case "A":
                //             return ["A", "T"]
                //         case "T":
                //             return ["T", "A"]
                //     }
                // }
                // console.log(fn("G"))


                // *********************************************************************************************************************************************

                // 7．封装一个numberSort(nList)函数，实现如下功能：nList是个数字串，例如1,4,5,23,2,17,24,897。请把这串数字转为数组后按照中间高两边低进行排序，最后的结果是["1", " 4", " 5", " 23", " 897", " 24", " 17", " 2"]，请注意左右翼数据数据的平衡性（左右两边的数个数一致）。
                // console.log(numberSort('1, 4, 5, 23, 2, 17, 24, 897')); 
                // //打印结果是["1", " 4", " 5", " 23", " 897", " 24", " 17", " 2"]
                // console.log(umberSort('12, 4, 0,65,30,8,19')); 
                // 打印结果是[" 0", " 4", "12", "65", "30", "19", "8"]


                // *********************************************************************************************************************************************

                // 8．先封装一个formatNum函数,用于将单数由小写数字转换为大写数字,例如：formatNum(1)最终返回“一”,再封装一个NumToUpper函数，通过调用formatNum这个函数，将单数或双数转为大写。例如：NumToUpper(2)返回”二”,NumToUpper(29)返回“二十九”。
                // console.log(NumToUpper(8)); //打印结果是八
                // console.log(NumToUpper(58)); //打印结果是五十八


                // *********************************************************************************************************************************************

                // 9．完成 isAnagram，接受两个字符串作为参数，返回true 或者 false 表示这两个字符串是否同字母异序。
                // 同字母异序指的是两个字符串字母种类和字母的数量相同，但是顺序可能不同
                // 例如：
                // isAnagram("anagram", "nagaram")  // return true.
                // isAnagram("rat", "car")  // return false.


                // *********************************************************************************************************************************************

                // 10．完成getSum(),该函数接收1个数组作为参数，返回该数组中所有非重复数字的和；
                // 例如：
                // getSum([undefined,"23year",19,"097",1,"hello",null,1])  // return 20

                // *********************************************************************************************************************************************
                // 11．完成uniqueNums(),该函数接收1个参数n（一个不大于31的整数），其返回值是一个数组，该数组内是 n 个随机且不重复的整数，且整数取值范围是 [2, 32]；
                // 例如：
                // uniqueNums(3)  // return [19,7,10]
                // *********************************************************************************************************************************************

                // 12.先封装一个formatNum函数,用于将单数由小写数字转换为大写数字,例如：formatNum(1)最终返回“一”,再封装一个NumToUpper函数，
                // 通过调用formatNum这个函数，将单数或双数转为大写。例如：NumToUpper(2)返回”二”,NumToUpper(29)返回“二十九”。

                // *********************************************************************************************************************************************
                // ***************************************************************************************************************************************

                // 13、封装一个confirmEnding函数，有两个参数，str和target,检查str字符串是否以指定的字符串(target)结尾，如果是，返回true;如果不是，返回false。
                // 调用：confirmEnding("Bastian", "tian") //返回值 true


                // function confirmEnding(str, target) {
                //     // 9、正确比较str是否以target结尾（10分）
                //     // 10、正确的输出比较的结果，必须是布尔值（10分）
                //     // 11、规范代码，并有注释（10分）
                //     return str.slice(str.length - target.length) === target ? true : false


                // }

                // console.log(confirmEnding("Bastian", "ti11an"))




                // ***************************************************************************************************************************************
                //5文钱可以买一只公鸡，3文钱可以买一只母鸡，1文钱可以买3只雏鸡。现在用100文钱买100只鸡，那么各有公鸡、母鸡、雏鸡多少只？
                //    循环

                // for (var i = 1; i <= 100 / 5; i++)
                //         for (var j = 1; j < 100 / 33; j++)
                //                 for (var k = 3; k <= 100; k += 3) {
                //                         if (i + j + k == 100 && i * 5 + j * 3 + k / 3 == 100)
                //                                 console.log(i, j, k)
                //                 }


                // ***************************************************************************************************************************************
                // 公园里有一只猴子和一堆桃子，猴子每天吃掉桃子总数的一半，把剩下一半中扔掉一个坏的。
                // 到第七天的时候，猴子睁开眼发现只剩下一个桃子。问公园里刚开始有多少个桃子？
                // 循环
                // ***************************************************************************************************************************************

                //  随机验证码  
                // ***************************************************************************************************************************************
                // 切换背景的64宫格
                // ***************************************************************************************************************************************
                //   倒计时

                // ***************************************************************************************************************************************
                //     猜数
                // ***************************************************************************************************************************************
                //13、封装一个函数searchResult(),根据传入的数据及条件，输出符合条件的人名，最终得到是一个数组。
                // (1) 数据：
                //   // (2)searchResult(stus,’女’,’大一’)根据数据去查询，将符合条件女且大一的学生姓名放到一个数组中返回
                //   var stus = [
                //             ['小A', '女', 21, '大一'],
                //             ['小B', '男', 23, '大三'],
                //             ['小C', '男', 24, '大四'],
                //             ['小D', '女', 21, '大一'],
                //             ['小E', '女', 22, '大四'],
                //             ['小F', '男', 21, '大一'],
                //             ['小G', '女', 22, '大二'],
                //             ['小H', '女', 20, '大三'],
                //             ['小I', '女', 20, '大一'],
                //             ['小J', '男', 20, '大三']
                //         ];

                //         console.log(searchResult(stus,"女","大一"))

                //         function searchResult(arr,par1,par2){
                //                 return arr.filter(function(item){
                //                         return item.indexOf(par1) !=-1  && item.indexOf(par2) !=-1
                //                 })
                //         }
                // //
                // var arr = [0,1,2,3,4,5,6,7,8,9,'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']

                // 得到一个两数之间的随机整数
                // Math.floor(Math.random() * (max - min)) + min   //不含最大值，含最小值
                // 得到一个两数之间的随机整数，包括两个数在内
                // Math.floor(Math.random() * (max - min + 1)) + min//含最大值，含最小值 
               

        </script>
</body>

</html>